package com.ken.user.service;

import com.ken.common.pojo.*;
import com.ken.common.pojo.Class;
import com.ken.common.result.Result;
import com.ken.common.vo.captchaVo;
import com.ken.user.dto.*;
import com.ken.user.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface userService {
    captchaVo getCaptcha();
    //Result loginWithPassword(loginWithPasswordDto loginWithPasswordDto);
    Result loginWithFace(loginWithFaceDto loginWithFaceDto) throws Exception;
    Result loginWithPhone(loginWithPhone loginWithPhone);
    Result registerCheck(registerCheckDto registerCheckDto);
    Result<String> sendMessage(sendMessageDto sendMessageDto) throws Exception;
    Result<String> teacherRegister(teacher teacher);
    Result<String> studentRegister(student student);
    Result<String> loginWithPassword(loginWithPasswordDto login);
    Result<String> joinClass(joinClassDto dto);
    Result getClassStudent(String class_id);
    List<questionVo> getQuestionByHomework(String homework_id);
    List<homeworkVo> getHomeworkByClass(String class_id);
    List<examVo> getExamByClass(String class_id);
    paperVo getPaperById(String paper_id);
    List<questionVo> getQuestionByPaper(String paper_id);
    List<answerVo> get_answerByHomework(String student_id,String homework_id);
    homework_stateVo get_homeworkState(String student_id,String homework_id);
    void save_wrongQuestion(wrongQuestionDto dto);
    List<unitVo> getUnitByClass(String course_id);
    List<lessonVo> getLessonByUnit(String unit_id);
    long upload_studyRecord(studyRecordDto dto);
    Class getClassByClassId(String class_id);
    List<Class> getClassByCourseId(String course_id);
    String translation_word(MultipartFile multipartFile,String from,String to) throws Exception;
    commentaryVo commentary(MultipartFile file,String language,String change_language) throws Exception;
    String SpeechToText(String text,String language) throws Exception;
    Result<String> check_homework(check_homeworkDto dto);
    List<homework> getHomeworkByCourseId(String course_id);
    Question getQuestionById(String question_id);
    getMessageDto getMessageByClassId(String class_id);
    homework getHomeworkContent(String homework_id);
    List<attendance> getAttendanceRecordState(String code);
    void change_messageState(String student_id,String message_id);
    String upload_file(MultipartFile file,String extension) throws Exception;
    void create_knowledgePoints(knowledgePoint knowledgePoint);
    List<knowledgePoint> getKnowledgePoint(String root);
    void delete_knowledgePoints(List<String> roots);
    List<String> save_questions(List<Question> questionList);
    lessons getLessonById(String lessons_id);
    List<lessons> getLessonsByUnit(String unit_id);
    void update_knowledgePoints(List<knowledgePoint> knowledgePoints);
    knowledgePoint getKnowledgePointById(String knowledgePointId);
    List<studyRecord> getRecordById(String student_id);
    void update_knowledgePoint(knowledgePoint knowledgePoint);
    void delete_lessonKnowledge(String lesson_id);
    Long getLessonTotalTime(String student_id,String lesson_id);
    Result check_message(String message_id);
    void update_user(update_userDto dto);
    void  update_img(update_imgDto dto) throws Exception;
    user getUserInfo(String phone);
    List<course> getAllCourse();
    String post_img(String imgBase64) throws Exception;
 }
